﻿using System.Collections.Generic;
using System.ServiceModel;
using VMukti.Business.WCFServices.BootStrapServices.DataContracts;
using VMukti.Business.WCFServices.SuperNodeServices.DataContract;


namespace VMukti.Business.WCFServices.BootStrapServices.BasicHttp
{
    [ServiceContract]
    public interface IHTTPBootStrapService
    {
        [OperationContract(IsOneWay = false)]
        clsBootStrapInfo svcHttpBSJoin(string uName, clsPeerInfo objPeerInformation);

        [OperationContract(IsOneWay = false)]
        clsSuperNodeDataContract svcHttpBsGetSuperNodeIP(string uName, string IP, bool blSuperNode);

        [OperationContract(IsOneWay = false)]
        List<string> svcHttpGetSuperNodeBuddyList(string uName);

        [OperationContract(IsOneWay = false)]
        string svcHttpAddBuddy(string uName, string BuddyName);

		[OperationContract(IsOneWay = false)]
		void svcHttpRemoveBuddy(string uName, string BuddyName);

		[OperationContract(IsOneWay = true)]
		void svcHttpBSAuthorizedUser(string uName,string IP, bool blSuperNode);

        [OperationContract(IsOneWay = true)]
		void svcHttpBSUnJoin(string uName, string IP, bool IsSuperNode);

        [OperationContract(IsOneWay = false)]
        string svcGetNodeNameByIP(string NodeIP);

        [OperationContract(IsOneWay = false)]
        string svcGetOfflineNodeName(string uName, string IP);

    }

    public interface IHTTPBootStrapChannel : IClientChannel, IHTTPBootStrapService
    {
    }
}
